Path selection on the Internet relies heavily on the Border Gateway Protocol (BGP). BGP is a standardized, scalable protocol that allows communication between autonomous systems across the Internet. BGP chooses paths between endpoints using a set of deterministic rules and is classified as a distance-vector routing protocol.
BGP considers neither latency, packet loss, nor cost when selecting a path between a pair of endpoints. As a result, in some circuits, latency can be unacceptably low. In others, there can be high levels of packet loss which can render communication less efficient and effectively increase latency. Finally, BGP is blind to business considerations that transit providers may care about including cost and preferred transit providers.
Currently, some approaches exist to optimize the first hop in a BGP route. Router-specific solutions include IP-SLA from Cisco and Juniper's RPM solutions. Other approaches are either hardware-specific (Noction) or reside at the level of transit provider (Internap) assess traffic flows globally and modify BGP tables accordingly.
At present, there is no holistic or comprehensive solution that is relatively router independent and can integrate an unlimited number of inputs to help determine path choice. Moreover, no solution currently considers or controls return path without having assets on target servers.
The Domain Name System (DNS) can map a logical endpoint/address in Internet Protocol (IP) space from a text-based domain name. When a target needs to be reached, there are methods that allow choice of target based on source geolocation.
However, due to the vagaries of the Internet, target availability from different sources can vary: servers can be overwhelmed, paths can be congested or unavailable. Thus, methods must be in place to determine best target location for a given user or market, in real-time.